<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="theme-color" content="#3367D6"/>
  <link rel="apple-touch-icon" href="/icons-192.png">
  <link rel="manifest" href="/manifest.json">
  
  <meta name="generator" content="Hexo 6.3.0">

  

  

  
    <meta name="author" content="QAQ">
  

  

  

  <title>vue2转vue3记录 | QAQ</title>

  

  
    <link rel="shortcut icon" href="/blog/favicon.ico">
  

  <!--mathjax latex数学公式显示支持-->
  
  

  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@1.1.13/index.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/monokai.min.css">
  

  

  
<link rel="stylesheet" href="/blog/css/style.css">

</head>
<body>
  <div class="root-container">
    
<!-- header container -->
<header class="header-container post">
  
    <div class="post-image" style="background-image: url(https://qiniu.sukoshi.xyz/src/images/68686407_p0.jpg)"></div>
  

  <!-- navbar -->
<nav class="navbar">
  <div class="navbar-content">
    <!-- logo -->
    <div class="navbar-logo">
      <a href="/blog/">
        
          QAQ
        
      </a>
    </div>
    <!-- link -->
    <div class="navbar-link">
      <div class="navbar-btn">
        <div></div>
        <div></div>
        <div></div>
      </div>
      <ul class="navbar-list">
        
      </ul>
    </div>
  </div>
</nav>

  
  

  
  

  
  

  
  

  
  
    <div class="header-content">
      <div class="post-text layout-block">
        <div class="layout-margin">
          <h1 class="title-wrap">vue2转vue3记录</h1>
          <h2 class="title-sub-wrap">
            <strong>QAQ</strong>
            <span>发布于</span>
            <time  class="article-date" datetime="2023-04-09T07:28:10.000Z" itemprop="datePublished">2023-04-09</time>
          </h2>
          
            <h2 class="last-time">
              <span>最后更新于</span>
              <time  class="article-updated" datetime="2024-04-09T01:08:52.176Z" itemprop="dateUpdated">2024-04-09</time>
            </h2>
          
          
          <ul class="wrap-list dark">
  
</ul>
          <ul class="wrap-list dark">
  
    <li><a href="/blog/tags/vue/">🏷️ vue</a></li>
  
</ul>
        </div>
      </div>
    </div>
  

  
  
  
</header>

    <!-- 文章 -->

<!-- 文章内容 -->
<div class="body-container">
  <article class="content-container layout-block post-container">
    <div class="article-info">
      
      
      
      
      <section class="article-entry markdown-body layout-margin content-padding--large soft-size--large soft-style--box">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉，这个密码看着不太对，请再试试。" data-whm="抱歉，这个文章不能被纠正，不过您还是能看看解密后的内容。">
  <script id="hbeData" type="hbeData" data-hmacdigest="e74bc736ce9ec7fd278ec785258ee20a10f1072ce8f2f11d3fa583be80b81e56">f5d7027a76d40f8b4fe5a79716a716fb95c8051c30618774b10cfb250186978a9da653750df098ae2f6e323bf17ce708b752d6c30882422d553d9cddefee08bac2842cc0cfb6dbf2a6098ddac80e9e85b73ab1965572a3317e471e7cccdfd07fced02899cedec34c8182dbe34f78371d7bbd006dc4b4052e0722e2f841afa204a78c0142d1ca2d2eed22e196eba500ed559cc9a15c1be7c4b71a2519dfd21ddb52dce67d68321d308668c546480528965c32d78a47fa74d77fa35ac212cac398417664335042fd73050af31a5b6714d7038784c32a95544b9c66eab430326fd9d74dbadc8dec2c15ba0ae89ea60d931bf5c15e9dcef1679adb543f237efeeac63a63aa8c62c7104a838e29c91dfafca25c0834b379111a406af5310924dbcca380f6baf3dc888ec70146af1f3d8b046249b9d17980aef9d4cec7d8a8c52311c5dfd7128a67776e2d1cddd99a65f9a8b20d8d06e440d88eac8166e50e2c8d52afad5880e7e6819d80ec60bf65e50c229fe0f7ccb9b8ab98d2200e7fa4664454e19ae52c744c87b9647f16a23bcd9e9aeaeca368be3009fe13364f6aa81d2fe3187a94d2bc4f82df94e796465b99b499eea9ad3fbc43c8e09340ccf3b09ef5e9f0b582ed7139d429367f4da5893e3e6ed0d0410ce370c1e47cafff6555afaec8ae90da77be74fd9738b0066b61ea547c1f9eb0c435b10d6db475f3b518f9dcec71452cba0ba042775dc5b007a24e6988acc633800fabda8901ef14283588f2f6443cbdde3eb1228ddbae29e6c2478f3ba490a4e75543b2ce09b8423c9bdc8a325c4d6e549363e26dcb91995bc4f462719596070f4887495dde1f4062cab69c9cbb0a933d1be16538e4bb82365653d1b91a2148323055fea72c17aaacebbd7ef6d545e6b2aef5bcd79d5ddc0ddf47885b4786c4f18c99191b02c75df175570125664d5146af26cdffe8a293248c05427c011acb6418e31d865fe644b0c136d35c2c4a45166b09a531279ac9930dc3a159dc62ed4eeed75692f4dbc231402fbc834eb2af38645122398fb22dd77a658fcf784ac6591dcbc190156fdb8c2c5596f815074266fc29ca72d4d9450d3a4eb4547c75093ee5f61b5c297e987b7b6459651a61edb9b09e19d835dd5d57a98ff0047fc6e62f940d623c0808c49ae31ab7d87a313c1a3cd3d0d61b2856d73b59e9722f389c2f08f5e17ecf2728347640d2cc173efefedec9963f13faf0963b3e4da1a4d6c44a80a0772c29c5ebc824ac027ca366b9def2e6ceeb2ad664748af9b29b2269a2196b6288c80200b26f42b85debc36529f6dc483d0de1392110159120640ff9ca74cb10145fc49c8f17d4969b909dfa918a73f1c0924bf9615ed821bba23073ded03827df40d841d31a98bb39083ce8148e0e50364fd3842f222b131e1aa99dc2971265ee0e10f2dfd605504c5b7c889b1aa0ff3050c182b6c080a00bc2d795b3c84fce04ede9701ee04e73f76343076cab5df167895e48df54b8ee9a021c2661edd3bc63c435e0b4df43df2c22b9ce1e75e4f24ef05e15899f52667ae27798a241ebdd1344e8eedd81774ab8c9d3b779055ed3bde74556a8be418dc49c46725444d793af18eca15ebbe59d87906b7f0defaaa9309b0f0951114d0eaea108017dd95e0f8f3cea44992ce98864c1bc2b1c2b3f0df7f82deea23a0eafdbbee9632e10d189ecae463758314df3558c9b850daaed64fd1d237973af210ea5226d329115e72da0e401401712645744ac46b6a999f25590677d0a755d9ecd8535fd68ae66c1a52f11195d88437b397dc00564610694e47fde89420487ea7fde17136bcb43dd5a1298268a97f59f3156020464cf3c853fab65c87bd057fd6820b268c1299f79608319a04df22b01122ef18648432c9d7726bd60762f41a3b3f2c6fecb22de5df780bb9b2ecea358bb26a985389c5abc24866839eb7021a7efacbef9371bbc7e95ec90d3d06acd6ba01d687eed09323262c5555796aa663cf1987f0e19cbf04a04545c1da9a7964f9b8e4c8a0d6681268308fc464a44ffad062014c842c173b73720b8d066a00fcb62f2bfc6787936339e39f1c20dfbed1bcd609375667ae67209c09d5c02777bc9e61a25302adb526a30551aa14a0e757f0a741be58f28000fee89a15faa434a4ae65f0c3231353f0e6a312d1cc0b414a0b8d47fd4858a54b438d38865d59c08f2ae62b5e3882a4fc7a09d2dccb2cbaabf4cd4513b42bda6b7983316eda11a28ea2a7c6f058fb504f75e2a52b16e144d1f9e4730befb658dabb95e1327cdbc0d6f830ada3333265766956a2d8f0e8ccf92cc831f2c199361f0f0a36d53902a03b1ad7229f68d8382e957297e3a4efc1363fa46ab909007c464047e8a7a69cccdc807e30d3d21b47c69daa9799e0cb003b423222c4edf8d02ee4643607973291fc42142528e5824cf7de7cf38af9fadf57c04258476231d18bd396d0f927691639530ded6c134302a0e1cd287bdb49823409c30bfcf0641d5b21f29689a81fbd9887eadff0a2f6e10b6d0b4d1848cfaca13685307da9f73df05956790caa6428d3a2c18446441acd2131ac3fcfcde0c8ef7181ee333c117b0c6a4c594af4a4ef4139016f5e1e8ed6cb18711d618ceba0e7cc2dc95baf5698e7bc54f1ecd871e166da3c9996b4602f0f45803f706a3083da9fbe60bee56bcb402c8e386dff97a1ba9f6711d863533716dd119c2a81097a54a906097d535f6bc01f634b05c3cd0e91c5c219eefd9943f9bbdcccf83883edee77caa23b16eb1355b2b27875380eb9c020cb5ece6f0fe91a309e2ecb0dfaff686c9dc5ba7b18dbce1320aa91de6ae591e5d05059475b18e67d10524423fb23deefd68ac378b946ba4e4accf9745d19b8d36369888f54d15618217482fa7edf279c11031d7f02ca0922bf9425d113bcdb79d53fa15c9f61d29e4f333f8b9c63e9fc70f5c4d0f28721945a8f699a2a95869efa0827dc1dd5429e30713a31da45cdbf8002f9fd1b52b90d54dfa8f8d8e66525ee49b5417864fae3c7738aa9598d4c10dae7d0635e2190bc2e3fbd48159d7b86998238e69ecfe866f7f55eb1fce6254927db1a7308b862dfe067ddb31916fa472fd154fcf7349fc830f819c9938280d57ea87e174057b64298af1739716b6478e68ed14579c8b147eaf57ee169492bab7cdd521d78736e601218d9e42a1c5048e89f6d44e50ebe382268f9ef63902c13ae8ea28973f9e57b03714a6d4559771543c39f33b5d474d29c1d1fd19681f15d4946dde0d80b294650ddeb271f3df1dd25d5a46fa0a0d0beb007196fbdbfadbef10647ec21942da6019477978cc02c429eb68c2767596c42054ac579b71c4792f54de5b86996a0ce8556c2dbc39bbd12febbaa987f377e1af97ec69152a716afcc6f924340d2424c64175fcfee9c884d2c40fb0519e46b17f11d7e3cfe158d2cd35f66f75ab8b60df32b08efff664fcf6a7a574c4ad310e683e6bbb2d8aa7e89302189ec064f8752f7a63cd28014547fdba6558f41ed15e8ff5e5d32b4541e902a634275114efd9b84440cf28c9108ca72952332b4d2f3f23ee7742bfc374c6a87d6ec059517481bc58350f6b1601ace703770a86d8a36d4083d3c39f756f989896d92df482b4d97c3ed5e138cd07559bfa7ee6dc4da5da71e428d797c784e128f6e69debd1773dc07f2de4d14f18d90ba2a4e96f3ef055be5cfc10f82228c1373bfb22ef893cea445e84e76fe886283ad98ce01e06fb0d1e4b49d5972b5c58c0dfa9dd5f91d0abac9e4f0607e9749c1fb664bc8dc152eb08c4aa322dcc29cdb8150329d28bfd7674be1145f9f73bf92f8c8a7d9cbfe78ce6cbe4a23226d2e91b9da2efdea87e739ef117f94e521f6578f4c61eb7d7807688e173caf04633b35f27fee9b79bf324e6326144e7b83cb3cf9a1a5d517dd46b6de65e1efc5efbbf70d457cdb2f69e76ae4ee6e3be58886d4c67c9ab0423518c8356084df174cbe0c619c8884198d50b35e3af8d522cd67fb81045161a39d53fcfd5f7df22037a5eed2cf21d4f5baa5c38d355bb4278687985990795e62dd334b23732f0c28446af535d2155d018010fb4b43a57e736fe02811ce03222ba169d77522f8579b54a79708300412cd049a9ebcf932a8462bc6a8e5bdb1144ef61cb864d829b81428613632e02589a6ab50ed068acfa583b718d78f567c287f3792eabcfc65a8d422dd061081805a22c7b9f59621093a7e2ff9eccaa585d9a399f348a8d415684fd8a985c1339c4bc159d9dcf00b0c36736c0f68970744d8c4da7b1bb4dafbc1ffd2b6e8e5cc8101212d99a63ec38f4077ee6bb86085d7dbf93227eedd237d65c3e353af4bef8811948925141e21a9c8400c0351a690a8a8de655723bce0365877b482ff89ae53a3e979e72298cc8dc99f3cdf3f4bab82aaba40d3ae15a7b16adb751a4c15bcb94135bb73d5336f0da3f86d4ad0204b39347705fe42736e36b88f4fa59bd70b8ab4ebbafc9d23ef194d9d3c0c41ed6fa3da9b5b418e557904042ddad25ea45a6afcc3135c44dec0f310e62b73d3dbd56e9862a5179a3deeda84d221a2dcfb3646015c0ae8db67836b4bf4b8b7e913926ed9fb0d4987923ef786f2a0bf2457b047ac6dab6bf1ddc7d42e787c1da330a6fb8c064dd514ae0e3209a2c49755dd62c012825c8ecfbbb354ed67213ff038c90ad1d764544de776ab3a5472a4fb90c394983d81d4794913e4c312ecc26d4dbcac190c8de9ac4a2fc677791b1279d114861c51d882756b125b3a01c4220c3c5f7ee127312113c1e0260893970ed38a8c838ff0de5321d9ab37f55ddbfaca798ca7f46555aadcb731072ac536b62bb0126496b3c23456a2e019dd4a03935f23261c54a0955cd1e479dfbdbaec014a214eeebba69731c6eb5e7169e1ae966f0597fcbad895b35670feb1e85bc571a5c51714dcd94b62c612ea95051500de540a562cd2fcb2caa5b176eeb6d9932c22f630d05d1c14ff973cb591710166ccaae5f0aeff6d5d9fe32ad51a9bc99d3bb63ab1dfdc31574bc44dd49c78c406f2c5c533298e9267ebd1655a9b75f089f7cdc8f262992bd28b462d36afd675517570ccaa2a34ca402663da8a95e0018be39ac86f7317cc55323fdf80a2bb4955b5efa55f8a8f1627ad993c265c3ecf4785221dca0c1b74ff5cdb468676cd8b1d1ab4a32226ac434d958d48cb2bd33cf8e7dce658c37e4257bfb831dabe31b74254712039633896159500e2d00b87c957b9f41b3bfe940e3bf18a7f7d468095351c052cb3ba5a13eaa273364fa5b93a76b07bf1477256046e05d32fa26b14e9f42f29f82ce53586450efba10dd78fcf3d9e03d45e78e3a020048b7dcea65ae2beae9eb52050a926bf2caf7761db240a13fb1ca18250ed6f031e8985a05e8987415fd8d9df0031294ce24232c4e3fc45f85f8119d37b8e0b7427f1ce05631cb2aea12d458672633369d6f23997287e88feed1ff6898f5bca959d9d8e7f5416686546422390de5ea3ddefe8a43cbed54c178e71fa5c073e2614819856d94cf2cc35dc5e450957e40a2e03874328b6374026452bdd7412984e3661e20cbf78046d2add4d9943560705aa0f1a9042aae54480e82ff74cc6dc77cc132123f867c6088208171da8a055eec55981ec549ac709d3402013b8d82994ca41f146cfa5ab317d606b4f5c9812e317bc4826bcf70b336b7466e556404f0785850bfb2a61a9c115c8b98f3350a10c1a83407507dec17ba2c7895a52f4c2118b591dbd149bc7728361a872d2de32d820b501bbb536411ec129b9ff0cf839fb771d543c81c604499c55609e9feb10202e52ae9cb7fabfbb86a20386d6ac2211448c15f377ce3665daf28f256288856f9d9413638d9ad91143265950b15bc111feb4f94d9f62bb7249126396c7f7407a311a6f295d5b5ab98a2827e8f80626fff9fb0e9e0cf0b231a2b4eb70e4dafd54e5e1f51ce44b77abfc0ac298762c8140d6f161b24949291cfb6c95ffcd41a205c03d00354c6f186f3b596fb0d97c97b23482021563802d8d2047781fa6a3ed84b90a22164634218fca9493dfde3a80718ae01d008f9dbbf024e36e096873da32bc6c38ed282602d13d8a67795881329c2adf88c3d87bd75665bb0b3675ae10e57c60ead42c73a1cc9922989860e0160d65e04528256e95687615a8034c34c5fb8f149cdf14b5da3683152be4cfaa3a0581794daa487ffd00bde6963fede3a050e2a1ac5ecd369d5a56a11b86a6604ed647440e1b88a6b7a64b5e407de16f973d57d57b6dfb72eec9d62ffde22d62228af9905c645f66929c6d579a459463cc2656242f0b253253ce1ca7a24a8cec5e15e78ff0fda641108bccc790ff7fac14573dd2f1de7dd553e33238f4e93f09e5ab40e02e9eea96f329a71fd5fa785d64923ccb2db8ccc4268a5ea73b5c50ff8c45935fe8612990ddf165888f7b10b70757277207a3f4d641720161909909a8b11eed567444f39465c207ca6b99ac412a422d78d3ac03809d2a4120b648420ee10f3709cb50d16ff1326b0b7086c940e30544817f3a6f99888b95595a2c7e60a53f659b6b8c6d4760f2eb7408706a8936213b26b2d8193b40c6dfa71c43d244715ea44f92eef87e887c9e8e089bce65d93f4166519ce1a67a90b978efc045a8ceaf198e7f582695bb604058f3c82c33c4fcc509667fc20b847e40b606f02138bc98fb0f0ef7fc73ef71c81979e705ea20aca6a1301c3745cffb3440b093ce828c15f2c6f7977b7ddc93256940941bac917d4009bc92c3086bf94c8ad317e1ad0c35197ddc5df5e092709c1d21c05f33c5ff330cda79866448e45b2f21c8935cef43866f36ad4517b797e7141469a4683a108b247305ce32c0c6b16bcb1f0ba360d934375961be390c86bf7f32ca114fbd375c59efc2a198a58a7f80945cb52dc1ee49f06e3f289a00f0d39259290e68541665c45e32ccca944f462cf9ac84f8c537e037f1afb4a939e23d669c63f67e7c7517e152b1cf661d9820bdbe3e7f92c07f744e299a283471e14b88d53bbd1fa6b5518143ca288256b2a2ab6ece9f8e5f81d85631558f0078520792e830ef6884983a18e06627a2f1b2812119d2fa882e5851c57801d32bb8dc925d6e64616816ab99328c246588eb7d3859ea3dbd42c401c913000bfbcc226d8ff5b6faf4773aee5824be2f8e188069f303b4dd04efb940aa7c22b1a5dcf2c2392e1731ef374fabfb44811222f7f126e4e4aec34b503569fde46865394c121df1f69b935c67ec1531b30ef23fceeef0fe0c05d6df6934eaa75114cace2654193ced662b16a6fd1edb0419404fe0a5ff5d71ff2f28934f2874f334484ac4b76681b75729ace44c606cdd93ce0241ab20c0f61c1b0e451415c52e4017ff5a554eeb53ff00206917039b8219dadc078b9bd851bb8eff0a7f9f4a6f47bae28117139305ce00a7ccdc69504b4b349ae2869464aff6f799de44e706a418e341074a2a0f3257700095efa3c046ff89817f16b0b4153381b854950f4b561b739801f01e617609631b39474e43e5b3af17490a1db4e636d5f026ffc04676b3db7a9b1859217a3503ffc2277cd6610d0c22a0309a7ca3b52226c8998d130140d6a35c83eb258f614c8b20b65c3c0bb430cb81d48ad38fe47660c315519e81f452f44c6bfe7ae0b87a4405b62d43da326f7161c4464d3b12b7962fd1762c6a042c8a74aceb4d0d98cbcd7388f877e82d4196220c398c58a43f138f2a050859ece47be2043772f91912d7744e2ddf5cf6f0ff06a7d37c0c957a1d4f4c9b1ee9d751dd9c16bcd7336b6c0dc21eff0d333485f2f23bcc8d9c05b88db057367f69c74dc6dffd35d3d74d0dd7d9e9f88b0eb3aa7f1fde8b9b8b141c94be0698aca188f0121f54e8a6e968465defe8594a859758d9e9b597d82fc1bcba0ff75b4fdb71e4cecd7a5116cbe0545e07dbe2690cee130a66919f58e306ddf0967f235b5da99a85eedc771eb6673ed3e1d7ab6a5db098c301437593297bd5b1e79627f35311b2f5350e4a128507f3b62661ce2d57be202d49979f2aaeceb566d3ba903ab5047659f97658ec6274f2fa92ceebaa5a7ab75640773ac944152a6c03fda3ea0bc523f4c854a4dc0b2bb106ff93706699e4c2187a64255842d53c6a649080a3d206d41c926a6c5073a3af9fa1af40ba4aa2a1066e6c36b4bc6da034f6a6e48422ee473b13a44f096b7dd93255970fde551b65a0d451599bfef777ca54e9d45008ec062a944f09cae574b73dd76e4fc7b11d4862a13a18ca70704f6ff9903383cc81fb09e76754f75cfb04e06a46ca8f2d4102487cb08907308c742a602c4dbaae51faef04ecfebe757a167244332852028d78ad333847ae58cc802ec66afd2ba0f37d8a7c61e6f2aa63ca40fef0cf9a9f32bd6e508d162d39c8730912bf1681a2a434fa3ca0387351a34ba07fe35925259dd5d5b1a886a73659f94666a865f7011f68adc121e4173eb922d559ad066d17d2e0a9188913cad358f5b35323a0b0cbfda0487d668ff8b84cbe679699f12379bdaa8d95721d9cf311976ba12fa33a91c02f0477e6ede4f74186162d4ac613d02c86bf275559527a264bede4dc593e7ca580656221f2e3e7bcaa6b5a445ca30abec7194d1056c750be2d482ccb61cdbc618983412501ff12766044834cd30052d0c4359a94613c9918f1bc6c8d82de46f06406b553aefcafe974610a8cd883330192b383b8ab552a2e48115a536581ad8a488ca78c4d66ed453f0dfbb20fd1a267032b93662fc9ac11c499de74fd43c38e3356723810ac44896bb6441179b835987c2b05b1cf33916b37fdda6e43dd807a402e23dc4f60f2a39bc7dcd27c2ae3b5b9c31ae426fd66f461e3dfb9ddfb2cdf31de9a7caf3d51774b86c6391c58993a4220e7befea5225cf70fa451c7c37171a057566d1ee86b452bc9f518137babf6cc93df485e985f8deda17cf5de548feb1c37490bd047fb601e2c1c90f83ff18ce41f8391b3612043a0afdf7ccace455aa8975cebbbe3142c748d97d76b8897290898c219d8913e4832dec77732dab6d27825bf4002885ecfe26a15d6edbccfa4da868110eb76717c50d0044f048619e11dcc16fbf956078819c944f45e9355a4a9ea25c477425eaa12f668bb4bf26ac0fca8ad161779f5d162803df1c14fa1cca6ff738314e5df7e26a59ade4dcd619d07225ad8bfa33c4c2b245030e9573fb828ad056d304c40441d03b61ef573a1e0cc375db7e87febdffeae7f84e0693b0d4ae442b41a651162e8cb42a804da3767dcb7500ccafd84915f07592b101ea5d2d7f11ee1aaa464d70a1854cff71ca72e4e232b4cef3993e360c42f1c4440aa747679631b89b7ff4c0032e021724f3f4fe548935530046eb409fd1b052f25f53fa6795040f2ae295023208f6212c8245c15d37bfe5f5be5954fdf707f8b96c076ab9bd606028cf7d99fc61773d0d6f772fe055b706db3ae69e58ddb6de3aa0566371e253198cfd4cff6e88426843bf5e8bc8f10ec53a9ca4b34e300ee07e3a52cb196944cbf25a29c69c8a1aa9a1df8bb3dd53ad128a02436125d334bb24c034b76487df40534f49ee0ccf2444011047298eb474f9ba25645d5416e271f4e4c01240c61882433e2617ef98dfbec3b88b43bb1d5e281ab22bab139f48d85a5a4c4c7c3a01c171cb3b969b889bcecf53203015b5f8013dbc43067db184e08675bb4a6622a303263da88f5930ff1dcd0dc57ac4f202329ed10ec6f2828e9a9accd3aa3e88c84f045d3a9b3478675daf3c57a5faa9312bce5a002c6d742c483358436d1b43cc9c285f0d19526373d07a8a77fc150121d4c7ed7219fec45296a7dfc6a36e00b3c23781e8e4e7d27691ba2e9b0eb707e826e97d7033bbe5f9a42a70ffbdbea049b44b7425053a7bdfbd87d7d3a5cef995fe7fe5f9bce0975e36d5cb82554bfb919784e98e71b6e9059c65fea734ff6e8cd4f4eb64ecbbdc7fe272272cfce47bac1e232f73362e3c7a2a7efe510ff76fceabf6d57e8a5314a098205e924b8aa94a1e8831b0bc2aaf7120b147025c294e3531e168cb3aa7fa9b5ff31d8e0c8b22ea71dc82722a18a15c76c83225895bfc43fcbc7671e31a02c9c2e1e773d07b865164b1f7efcda8211d2535c34b4c6d714fc3889e713f7b3ec25b2fe7793153727905dc9af95d4d9bbb289144d2a51c3dec1d9e96fc0385e73a1b5a89b9f3d97c76513bcc1c5b371c124e27890351dbc4a8282c273a568f95e2a19b47f7aef203472800978ee55d386341635b733378169912dcd2989ecbb020bb600ee2905f58e0132aa3f04132d9a977a9b7e4a23d4a810abc93b3299acc1de16621529de452aa116a2a0aefb940d7dce5047e0512616f47afb93b3d6a787a49e1a6e679260d94eaae7ae26de6b5ed1fc013a1f015f7fa678d0ba7c4c988b1a089fd12173583136ca12fdefbc6ab6d0d9e74c8c0d0f987e00035e9a51f2f43831d47ba12dc60ab2f97578f47cb699d82a4b401b6b115ab97ea3bebd120fe9c234832773ffbd9340b92b6adde79f465204d159703974145c26599c7c1be7336f7d865ef10b3441b66cd4b6defc572625de14279204e1c5ca97cefb0717cfbba1774bae5ba84ce06cf54363d07ca80733b8105b472805222d01c94e1b53e52e352e1108fceb18f88829b4419f3aa86097f41a57ba405efbd25324c06093d7b80f3edc91a436c61d535bb8a05a1a84c0323e4cdd4e8bb39ec1fcc695d77fc9c34cedd989319fc52f9eca263916a6c2c1e9602edea1706b76fff1a75036a26a5c6f1c41c2f7c03b2999d0c8e5cec1781aec549f61ac5aac318ac75cca59d7279f2fbf13cdb03660a959c203e7594ec73031db4a0b8cbbef7f071668847de410e3ed2ff566d1177035e493198cc955664cdf62a81010557237ce541a1a34105d4d0b9f07446697fbbd4cdecd9045d6aaa89f825322ab44ca148963e13e73d4664754cf1a8b4b0b8a2a613cf975b7292bd428e251f68b37c8ef0d350e09462c59996308e0dff752d43cf41e425f62ac1ee8ce3250b6d35b80ab8e86e3917d2d9978383f4e37d2e11a0a0f1c34149e98fba52e27ea20c05d2f7dc9146a9023038c209fdf7dbe050249aef331a85e5d8aa67796a3ad21ab7400093d6e2b213296fecc1b04b21af608552dba39ea03a05038d3326ba0558ec0efe8dba75cb163d37983e32cec337f18cf2688bd2553334f499a92ca004800310d1d8ade9ee559513bca0d185fe02591c8b921a7f31d8cce15759f6621ae007f6ad2e9cb955f58d4342a35ef6fbfee1152e5cb73df45a66b424c4d5f534dc4c4f6bab3b3c63fde34bb677c63166a79d5e0e809679aba1b026848a2881d63274870c6cdbbb5fa723fb5bbe624ffc65d0f2fd60c8d5e5b2cf29d39ba71d61daec3cf735d82ecacdf4df0c10c2902252aea79374ded37e350695ae45905b34f28b5387d6a8f6991a38223fdb8838bfdca12f7087c9dac50f41a8aa8dca5bc9cff7c3553476db8dbe15ac3c14aebb50696a4261fc32f908822b20be690cd5d8f5dd390d88b42692adc08fb4665008ab79446831927d9da19b46c4606eff4be3393a6ed57e200942ac5d8e3edc65291fbd8ff528290f114fc4cd1f550c3c0593c36629ea256ba000de87b30886a1f4eee62d2bd4e158a078b3dae7589936dc4d65ae1673f129e3d13510617bcee714cd0685417842ada3665f6b2fd0cf723db87dce2c0febe7d82dab5c91da241950fd0f9f880180fae159cd079a4178bc935c1fc696036d0c7fc58e113f3451002e82bdc9d35eeeef37eda8a6b77241dcc223e55a8ca9aec6b9e8016a891e32f967c10f5e5c415492211f9a5897582e8bba61516413f67e00ab7e1bc07319aab7eb6fd0d19125e7f7ff69f2be3d6f5002da9f2630281b7399191e55ea50c957641e726c5809aead73154b215aa0c104c75effbe3990031676e6dee396f4f4b0a3849e6253c7e8a0126600554d217e41ba7d8e305d06c59ceb224780ae2c4c65b11071472b19ec677c8b35a728393fa99aec9935a2af3d4e200345cdcb8ef79e3334822558382f1c9628fbba038f9f7458ad93bca7e3c7a9308426b14bcf5129b74c6c27d379711473d7c768c56e2edd7304e2d82958f7ec585bcc30f965c80373e624f36e27a4fe095eb61028699c2eece3c436bf8a3a01f2de6cb93c7ecf513623957a39993b535efcdd3ba6ff6e4aea1e5848bacc691030de14fd7e3d0d44622d6d7bb29dc42bf4a3ef60a4e2299c18e9d66ca5deb9c24926514eef542dd2ee22cc196080affbfc32cb40f9526d8e0dbc7992dd1ab75c1a177bd8d90bb0d7d726b7aecedf59aedca78a78b76a6120ab0d12fc4a70d3b0617091a0e59d5dbd56e6f6c1772e9cd211ded8e1518b4079695a62061f457d4beb636e5b31f7b3640179c4bd375626741dc3ce708384b334d96afb5aed2f8f013a6b8dab51dd719f0cab8bfd98bd65d9f625a595d4baf4f13f9d9a5db9ad5ad2efe04872082e230ff3739543032e71cc5ec2c9b486d7571c258db45a05a35bf0420a120d44f90c4283f7feec60c510f302e965789e2437e331e5dafaac031b348191145f73a1304c5e2f42ff69b5d140eb02c8e9ae1113b9136b9da69443ef43cc3f8044e64a05c8ecc9ceeac95fc808c7b8e5ebddd3b630ca9a38ba4deedc44e66ba3c9753283547592f7792f7057cdf93a015128078fa6c3452652a6cceca884780f528f90b1931b2f8f4790184c87ca411ce0e4c01056091567a26c7ce059eea597263e61d2b944732fa5ad661054697b5b5deb3d9c0df80c162fdd290fcde92a7bf646d3ae53ba9844be6815cb454ce1721892578b88779a7e6757aa0f8273a6e5257ac6ac227fb3ab84c160e9b131bfd16fffc943af7b73f9e01d335cef158025e76fd4bc60a5ed92333071a2191ded167b7451e0577f29f0f213f4be4d1e9c74bab109794685f2cb6bf6c95e3a46ec08bb3f578e579614834cbfcce8aa0e95d226a8b2efc04e651dfe6cd0429e6a96064b912bad787a0530f03c58a3a3f2b70b6fd74ceeae1524d296d1399a037e56a707a1a41f9bb7355c7a2cfba35c59a47cd77f3a7a6ebc6b5a46b85785b130b4259f5113e67a72fe9d4ef30b5702cafc77f8c87bcd325dd80dd72ed04998284400f7ecf2c764dc3cc96868cd91fd987d8af7f793d3c837faffa30a2b2d9d6508b3511a1bd195422d12a7eeceb3cbe1ade9c317a1410aec3db3311c927dac036e5687c3fd557c5f15b01cc3b39250ae730017d1d9e68db290a818b7b766f36eadb66baab51c6cb042303ef2936b3a7fa7ae958a6e76e7b191755d5d4523f35b01d3dce437ba325f536f55bb36ec0448e8eccc0b4f64f223add5d4ee84a71a2d4ff80c4f8d1de30b184ccb40c8996f169d32879a18f9b3c86645c3d6b437563c3468d014a50f779d9d9202bda52c088cce89d9db40a7ece6ad45821de9809f41f1cc84fb448e54411ddd155919a1a4439436197fe1dfe73052873de8705893012d85169cf6061889082952a753d90b44992ddf3719b9dff3ec52c36a1384d84cd54bd298b2a623a745a5ff776d0b99c07f377eeb4d403c727be3ba1fe11e34b05c3ecb50e926fa13a525339a7bfe751c7adbb92bc2b4d4fdbbc86083f1b980c0afa521395a6f4a643dc2ea87864ed20ef448319746fbe8f9ffeef70e40c8346449eabd0a3c92b938cb7cf0964524f5c932c426f5d7d7e923a3b0a35e48318df2202232445d8a17b4e443c98d7510747c1929634bfbf232a76c7e44d1efa9e187057187f717721eaacc8c94935dc68ace3212df6c271906b5956d649445e26c97e5a78f6f04f4274ba369e4ce82746e5b234df8718042566bbbfe81dbf31303da5ef188c97d6b775d8b9fce7029d0f579228e57043675ccfaa75551ae78a5811d1192b45b671a57c25dd4a6414e0aa9fa6450ea7fe789b417be2c13c9459c32ad6ded6b2f361bbecfdc70cd10ad6964d594535ae8259ec54727ee86614a836462efd298aa9e8d8cbe1ee02dad9f9d198b44770d15c549ed278a9450748c9cd7f952b08cccec29ddf1841411707d972a940c028e3a95504d7344c29c767c66fd07b42e59cddc89bf05fd2941e074d9248fd690ae11e7360e0c639f54e6ecdd4f6e932c94b9d16d96a507a96aa7119f47853c20913e6b220000a14dcac7a19e7a437e03ef6025d64e442eab9359ca3fb682d13d8a7a5eec190e8e347384e4ba78dab99f0c6e1c381af051a73e18ab42f981c7ddbe0d123133be72df963fde75fca9e6e19adcd66b71fc29e4253e0015b38aa36d49f908b86d10f7e70c5847a9d2ee8a1a7ba75e829616103fb0f6488e387d11607582282b7e6c29cc7df6e346f014df7e3b13f565f97a118d0af4f5aa8fd3d6cada8725d7b90649a2991cc79237d52fbb172d251911406e507a69564257b9517205bed673e4c3f3bf1c63135bfbe32f8e9715887ed1515c388564dd8d6b070c127c70ee3cca30410e356c0b2aa037c19d1435eb7586617bed1cd36f9959f8a22f0ab37e21967f6fab39a02e9cbf172e18cffd50049463c28950b9156c27f1205923f37c3b7b889dd618d12a6a64cb2e79e2cff3ce05f563bd6f618ccfa3df6821882683c71d8faf9bf99b99dd94abcef26d5af76c0fb6c6d7aaa8c229048ae3be7cf3cc9d57f8f25b4dd9511582c945424645fa0818a23cc926be798e4cb1f010f3d4792dc9dff7841b7ccaa4a32266a1886076a158272a4ace4c25dbc256a0b84e6a063882fa0f93c3af89bb409036fbbbfd71a333f9049b3f4cb5b819e06077d6188f41e13286a36788beaabb0d866b934908cd9b63228d0fd4e44387e5f70bbf027f16f00e3180fd8f5cce4177f0e8697d6800c1b6c2c84cd975696cea444c518c99e3ad2bf01e7be77dcc7ff9cff6977446a7b704c8ec304f4a82c668c17b352427e41a6ee6ca206747b5be11eb249e904cb122c9c94937db9fc7b0b9a2d6e76df2bccc0be304632b161d1042bed59db30d1de4fa3fa075f0f2aebc934c7085636251817809309e83e1ff422f38d3161f930e9a5cfb2a390fe35b48f4a4bc25cb875748cc037a10effba088129a9d5325817707ec31a8d9efeaed3dafb2ce6e4fd1be5eb5bf847a42af11f828c924e44414d049f531a5dec016f1c7c9a1092fb3dc8c0cc0a16e8deebc1e939cd7de1b5a35e91ae73700f9ce8a343c062511d6e5efc5d3b34c36b56179b3517c5d761aa6833cd8af7187c14143b8d46103a67731dc8da3e4157a93e6dab364b1ad1c7b3253b9204e7a5fe423aaf00d333a4971464b7e9f4243da433aff44bff013af9cd72de9ca2f6b730f0ff1038835ad2b1b2c4f374d452d3b653da5162aaabff164ef6b06e94c20e47ea44e81bd46c5ecb8a039922969d43e622ced2e4ef8ccf1cbfd29a48df5274fddf08e26539c1a6ad1fe756410fb6e0b985b976f5fbcfe7caa6b9eb2fc84a5dd8af378a22b0bc01664071ef51cef344ff210fba4a66716f9957b6a846abb67a4b35e0b0d9901c4089b3330a062f7c9064b84ea9fad04b5e0bfbc3933e568110daba9fb1ba66f673f83458a3f6bea1369546a95c6d9a7b3ecade31e37fa65fd8df7942e7f253b597227a48858e08f9630e2a2e0b44657838706567460f6883a30105617c2c9f04beec604500a8d0e1aec456bd48f5a5d5e688111614d64b5aea5838cb1103f396a47a2831b2122cdc79338435b5555c5bbd03838ac5d53fac92ebfc11379393b88dd554152da8b30c791240faa6f55b1bd5fb7849295b5dd9a4c392e29cce285c1780e61624c8ddc8ff091c688073b1bff4a754edcd52cdd9bc8eb964616ee01ee73ac9eabf90e97da7a8e7ae884dae39ac078a6bddc5e228be96655e0accb32623aa833f93d2c562bad49fb275dd06f1f7c645fab4a95f7945c8b76ce43dbb6c284e92b406cd32134d9a06e9c751621fc86d31d33d1aa106140a5117ec4f77d4f5829ca33989970b281749b19e4895f12ec34cdcc784df9989297ba84fe336240776eeb5a46b93abfaed877db0daae7a17bd3f92c05064c74a8c6e09509d619a71c4faf4a669f8cdfc296ea4dd9ffc0f45f32ea32a54bd209b5dfbc60b0f4f311cff9e9e11b0e3cbf3b1291b0ab182a150cef237dc4089fe10667ead150dfdcf38b37916f87752d805cd3147c6e61832fb0374d83e006635ed14016ba5066b1ee662b213f2e0cefcc1814a163e3c081b199ce0582a00d2036424d7b6cf2a17e5ee9f07b5c42b394d5a556e1cfabbc660d6dc2e1bf672f38b4d9a8d09ad6fa186796b59ed0cd95941b9bdbbaa8f997bcba4747d38b9027289e498da645cd772d354625a9ebc54fa2d267e3469250b159a3dee3b91dd5a11e6880c35432ab7d092f53bd49b28b270fa154d668b9eee1caa820de9b32e84539445676ad84cac430b307c537434e422d8756395b5cc0f33220a25fbf921874e6b501a424f33ceb2d2a4c1c585b59a22002385d9d4f9d5e86bd682325d7738b73bb796639973d9ce74afcb3de7a578995e45242a5fc0e8f24a05a31579780c8b8c288df39897b9fc78a98b0d8bea2556db98792548d9d1203ef39692a7ffa91d80ab6d87dad662caf31971f9676cd6af59c64347fa550a6accc4bb430dc0d7a51dfe3f3b4610b5fec81e34e808e7ee13da948b8db49f01ebd1b3b3f049a8176ce54931e17c650d822949ea6ef5a16872cc9f5f95cda8bea01a4a7b85a58753625e3082dca915809d2670f3631dc2823596c85bf122823fbec4bb3de8f6f29210f1f1cfcd24bee4367d99159ae528076090e91bcc3e699a4aa23894bfa880039592d24abc37ac26d04b01848b9b8c5fb960175a84e64a2ac371b5ba20143f49e4fc1b8628870101c3edf846791cde72ea6fe3b28bcbf89316290eb11c2febca31759734779ab58a79c007d765505bb30a543631c3796dda7d9854a7ff7828ac7ab8d425c27f7963e213f0df90317ec12db29b7094aa547c9a342c808206f73e311f2ad123551d1025e7d1815d3dcbb8fd2c3b445b584e8773b11101d188292b94694ef4227dd58b942253bd7de9243b7c0e48ea19536f3fc0a8958e0c61227ece734b73fdd1ad262333b7a726c6fb176c2446d07859dbaefa83381c996fa02575f301f64a0b30880cd6fd88f6ca506c01c21a11da9b8ee18e02950ae55156dec4064fac84ad81e35f14aad2fa93f9faaa84030172ea116f2005416e6fd39c12e9a35bf74fb86173f23ebb5ad8dda254d652ef92225a03e544416891139d6b58b8e3deffcb41b76a1430f08fec5d89c88bc6f506c447a1de93bbf3a60bc36f1ae24beed5366c255a11a34990b4f3871997c12aea15fe0f5b3ffc22a550d2c3d9bfc209eb4a7e5553fab178892c90dd63eaff228aacbfa83546f84ef3ae223bf7b78bd5e37a5d42579f65ae93c2fe93a9f6e55f9a2c39323d0f46c30899e6aae5ee411f08e44b38fd37f215d32b7ec09d43af818328552f55a6f522b3e6192e8d49508228ddd51e17f4820a93b259ee0b3cdee9e3c24310cf7e58c17ad65f8af37aeb403ea4b1e1cae8ad273b29e72d5a76849c58bbbbf13f2e1bd8498b1df33235d98166a2e61aac3d68c7ce891564d863a5c6e3f74b798ff95272aadff109deafe43e041c08ddf8e167504c8a5562e117e99adc84670f82d3f64a943b10be7e234316286d82112a8137edc2cdbd8d6dbb1d1540c7d41c1aa2f529c029675298f06b63f5e4404e447f3a429b6e339059ac9a65dee0c4fb15cb10b85c8c3cad16ab92b01b7d50efd5f1b1c0c76b33bf2febae17e186c5019409f6047646e135c6f45e02fc3c814a7e71d90829617d373bcf6f784ef535151f0d17565603ad959f84a27f326edc31a59dd5302a8cc85a7c654d5fff5fe1d0f1853c0b747bee7683fe65258ca19c204420df618bced5bb30b1df4d62afae2a481eb688dc97dd5e0f8954cf3ee7ef896d761c51f3ebfa260c540573bc8eb2ff44340a2fd683a2d78344ba444cdafd67b292b9cd132683dafd24e41af63ff6368cfbbfe049df9f597e638b34be68c2a51bc7e4fa5e5e669f0eeb129310b991ba6cf1a4779efc42d3bd0f678dc2f79c6f48f8b0b2a286d924675baaa90b89dcd17f9ccf01e8781089d723a40b2a663439b1778fad6537b837bb35360038931df286cdf0d287aa5471b82a0fe53cdb6c58d6f6acb58f5b7493cf8a2f5fb0d2a5c55a6a5f3d09fa5b6850f51500dac00558395f364da6085c93b855a26cbe997c756df857c6c76eac0facada1799c409221c1f94eff0ac15266e82d4e5a14b852765bd483a84b725b573f4d2ddcfe9f834d5f072ba546f17a91555afec7b3b02dba88e1d21eff9e7305f176241debb329021750e5f422504b3bde25e54951569fa552118a1ad8fb24aaf9b3482eed9131a50430cd4634a97e2483c1b272440585964e13b1c7acca0d67525a966aa53471600ea0e8bba48bf26fe8264c0ac0166ecd640adfcf8257253ad7350813ed8fc0e79fc8b993c87e64b0839966e872170839f7eb73b1de9a7816139b4501b3da7c832292208569d8ff60a29f95393535fb627d7106320378740d0099e9cd0833f2a7d4ae7169e00efc356656efa8e8c1f57fb02e25430fc985385d791e9312ec3da5e20383f44bd67bf33ad144491389f4cceedefcbb14ff6188eeb2a550222d9732abca2208f6b192939086823b41125c4a27bfa11a9f9dadfbd2fdb89819444b95ee7da6467e14258ac2facd1ad984cb65477c516820738caa476fddf95c2912188b1825c93e972bb390432fb7da2cea9b347e0eda2ae0d12cf2550972184ff47b07e27be1e3f2d8ed4cb0f74c4638e4bf2967afcafca441b4086918ffcee6c3c3cef86f6fb5e9e0eda5170008401855f9c4384c98d0f526d7bd787123eacc1f1e4908fb43ec25e1ee5a16d7d898d055341025894b1b482148cb9ebaf93827b5b14dacbda246910781ee1469061d435abde5f96cdb5f55f23c618e1becb905ae2d3f7bf36d9528fe43d2cb20db7a7029e87e647a48df6187d5aeb67b7913cdadac7952305e77348e83b95dad0871217714ee8f808f5474feaa8fe26033c2d2e9d1eb517fe227c581f7da709d4a0adc4e7d006b6d6a456fe670af6cf52515bb9d2620d6bc39c9343047552fd1629000527d33221604e73b2d569fee9fc352b43ff7933efa0f15ec10092dd4d018ce49ef279338c6a068eea579a2cf8c49365565cc48c27336e10bad8e2527a350032aab4134b6d739a4806be5551b29dbfd0bd89ceb2852fc025494d16bb69b0da1e757d0c973db12365577f3f4d5a2c4ccb048653b5b7994d8105adc73d0a339c12adc50a6afc095a0032148bf82e903d290e1bfa5f496dacf5ba254f1c32a8de889c63d714214c51eaafec0488619f00d96fca91c045a0e7a77e8a73e9f8cfa03323144608d64d608f2dcb0ca1ea1d46f38f730a3a2d925c84670c5c4f3e78796c65e11997bb45d229190557fc43c95934562289e4e4154cc0a5c631383f23fa65bba316e4cd6be5c6c2fbec570a0f54a4a07db953c92ce009115a0f48a850f593e6cecd5be6e40a63d21b126c4fde00734acc2120421e88cb30eab6f3507da544f9bb38e8ee7e2838233de8a1c3d0d21d7af72aca36f20290a5efee6c29091433f656ce4190f567ec180d5b2b5686497a07e53927175b9bca5c15783fd14df39ee66c1d9e71e0c87b872604117a8ae0856f35a31537938435befe5d70157083f7d37f12249cef4b3693cadb29b3fc8902b877b7936169c226ad0516d585919420926e1e22274fcfb4a989889c12e7a9ba9ab89406026da01f0139fa9644a27a16314dd74e3cd5e1084efd136c08773b6286487863e36cab361b2835d29f36d5bb9489eacb6c36709fea661bd4ed7c2a58b88b89123ac0412a54aceaa824c846bda079c3104929f36d8c9371adca0b50b0aae3967c69469d1868d2e236f5a27c1af902100e2779b2b7b744eddfb9750ecab2b55f4f98ff91f86b87b7567539a98692a02009309b460a0616a01cc4450ab338b4e537f5223aee5941c589fce6214cf9484bc11dccc857a41f8637d7a12dbaccf798b60b59c3b2a1d26112fce6c81b14085d3031c103a2b53539b84a80042e8e713f7157124590c45043b0e30c6a1d01b140119676d36478fc76a3a1de349c1d0d0464e3c130de099101f8a2eef395c303e143eaaf98dc4f2f503083f930aaaf00ff2b6b86e783907f74d2245c787ad0aadfb5d2e91095175b5827cdc5d7eeff62daa7f4626b9ea47e01c82e7605223f2f26aef39be0404496b3dc01079ed3d992ba19d549844ee715983a80264fc4ba7db2034f4eb2106c94b1432ab8a4df0849e07d6838c21d7baf4908ad5dfbf14e2828da62c6ad2c07ccdffe2646dbd7b04be3c71b23c586b6d2c4fe5975fbaa78f42503655c462b62bf8c7e6e24f8acf0c0edbe6829d57d628f2ae86f6f2e79788c4e7515614d4cbb17f073656f2f80129e9ad818c31440cdf0fdb88ec8f122a33913591e553d95a31730cf8f61a621ca4318e77b5ab11344658e4d130c76f5738811009a3cb541e5b1ed0ddb04f5fa742c76cbe9a5a918a8961eae5ce8fdd02b3538f76d233de6a099ea485a07763074107fd1bf301bbd80ba48afe2d3f246e67de9a77ee0006bf1ab1292e3c1259ca435a5369ae1f4c26dcfa30a3b631169d2162b553b85aae45982033155610f3deb3b3dce8671841fb3e4d6411c43df07395fd108f011ae6968e0c467d818e72e53899129d7b327604b9d9c325f3d727e5138dd07545f1f7951b2fc54efa0e16d653b59a426847e40e0906e14ef8b35793e8b0d46665f051efebe129cd56a88ade8e8fcdd33fa91e4146da6b926e83b7dcd4486dcdd453f9c690f901d5141490975084c33bbf21e7b0d6f7667b952d6969a0bff3a5e337cbda6dff2ff71a846a34c39f93edc4620fb0dd05669e0cfb1f037a20b2c59bde3c120dc7b8d68c557900d7a48bb9872babe412c4bc21e98a795c174aa3b364930de4b7a5ecded49a6863f6ff4e502b2299abde75b412c6b49333259e29208ff3d832451d6b819afa3ed783a397fe3ecd2c5c3ce3cf5a62dbc8d84ed81f3808d2233b637ffd29a52e1eea05aa6f78b1c61f6115977fe73420c6e37a4a9932b056d555674edb9da3ed16088fe1ef9d42348c8c470142a2d14ab5f6ae300ffaed1844df79ab975d4eb2b3678636172654dece69e9a351240d0d8a78e3e0675b2e1c68a6bbfbbfaa6d24a6b3b4abf7f8f41080c29303a362b2769a142dafd9d0926d0558074fbe7bc2e1501efdb91438cc8923165559f16ca09638878f982bb8b8fc60f47ad49b104b346a9d53b4bb5b444199ac12cf80ab40244e5853c6d496f033e9455905885aed1a34a861ff4002fac333ddb2355ddde40e71a416f5f7ebdae7123c3b6d98f83544bab1331b1aa080418e54c54dd35b4512ff50925c74a4bf596dacaf370bd56ae193072d4a226f4bbe1301602dfe437e7b79fc30caf3066e3b4071435ece2e5384591dc25644e307f6ee6a2da5d125294624e9e27d601a7a12e82349448d977feeae738e38d177bedae2bdbd56efe43045ec52027339774257b46310d831c1a3b8bcf0f9811a169200b0c9624ca8813719d7d2e1fb01eb4b9d30a7cd28ac9b59136bc7311c66f2dd8962d4a8614fbaf27ca3002dc374b04a7c4324ae90fe9a91f1ed8e20629b9f87e4a9e28788b0bbad0d0564fa06bf84edd6421a8d406b5f6fd6a85ffd14299e55fe6d691bbb8c253bc9dfd0e46bf08d6195c3d5fe8bce43664369a7b4a954dbdbf802d7908e1370c79853d41dd1be1ab8eb21c6b99ebdd26ca1af24e2592068ded3c2d00adbe61c0fd0a3f7e7da4f7def676537566a8feb2ef8a73ddb0808a38fc56a7abcedcb26a0fbdde5092d3a8d9474625d0f875f0a7073c7f67dfd9671aaf2d7054aa4359f43b896a16ef963eb5cb2900fc0c333a216eda7e164b9f88eff58fa9e7045e85c838d812972d9e9adcc81080e62b90634d6a57f099305841b4b2ade98c335aee71cf29fd258cbedcacef32f3c9a62b209d43bea7ed4c7b4efaa4c1e6c88607b6dd5967ad3ffa11afea9adafe82a019947238b820b64ba7a443cb2ea28fd1db3f76468bf6cabc5ad7a6cf75de99d00ce3c102ef4b1a93e42392746a231ddd64e369ca4cc0ecc138e40d7cbc9c38602d1e2fdc64624f491971948fb337855bb34a723871530d4e53f7be78c5a0a1162c4a6c465804029cc5e1f02527564858216da6a7cb291e68f30d6b75e969c32a862a8acaab14057e67a39f6861577c3a1c1dbbde03a4da5dbf885d3659f0b6ee95f4ac7f2f4d4878667efef2091ffe2c60bbba66b72742bfbd14dac21bb0a9fced0db8b73aad54548d4d5453658757e287186df4185791517fb603fa7641bad63b623fd0b8cd7ddb2aca2eddaa269cc5b2868e567e39f8bab28d9657b7f7f875b3588195cd75e1658c8f4d8a809ebd7bc2db35ff6df442b9009d569b92a185e6e9d6133449ed2b706907f64dcc6d4b1a0cc2575fe8d69b8918e70a9c0ab29520f7224ac0dbac5a627f104b5cb6b4f2f7060284cb26fcfbb2a7983a88d246cd9e93d065fb45b62a91363151413ad462c921fe93f0fd385bd8b35c115f7c3e6734085414930914a90db45a2b60bc6d4639da866596933708a0449180c6b855313544152c977e6fe8b950c9e265fda0fcf348e06f54d0569510c59f85e37f5e9c57b8680ab6be886a95a1d80d8f1dba71028af4dcdc52bacc5389a0b9766a25be1a76976c8d57f0f5d5118d8bf4ce4e5c2958ef289e218353b3fcfa722fac525f5d8942348434bd12d5ac8f6533620e981bc13e5b11616670b8125531f35e7ba4ae565e1fa373fbde38a5aa97d50564435230d40b5b07861321dfc8ef323038fedd9ab62d49f659153ca1e55971c804d24d69afc2abef7ca4f98c23dfd7ef29023965be82b314055008f1b8ad0d95d2ef05cefd9707df62718b9968c806a44119d1fa76dc5380350f65133723fb79d9ec585f61943022437a45a97f743d539e6f8c96648fb4d4747b73451afa260e9cf2f74dba76b905abeec9ac4d3ddbd73cbcb68c6898c9448e290e76b35c17778792517c8b96ff2bdbbea4f36e44443a34eebdaef4d8993fcae5debd6fe70b50c2e427bd85c9ef3c860a31d86d750478d327be25a314ec8d8639db8fdffb9b1065d0c6e00f5f278fa2094e90b87e0776919c45057253adfce1ef2d617276f99f20d02c59675b1d937cc4fa061f40bcab5798dfeed6dcbc29a34bbac1aec636b20a8af5b9c0e7d4e6d040ca5645c3dbfdbdf2950fd2e88b1199eca97079a1075807ae42f210465ec8c0d6eb43a24b2602f41a3c4cd80cc98c0b8737e201a75dbf29386581579412fe9ccf2c675706c851cbc0fba69ef57d8d746bf4dcf5db90d52f60ab292035324e7bdf22ce4546f9216b5d9c3d2f903a432b67a72229f905c77e54915d40174566b93943456ed791bfdc250e39f43c4c08aad3bf75dd15b4336c0581328c202d5c506c34170e31b8df71d26d8f8f8d086f3e25ddf43d79a5d44af136c1c2a264a8ca224ae3f6a3ed81d9ede124cd1504eafd1e7b67f5934e48dcd4cf88867e63ff016b065b2d4ebeceab73c8fe67adc7b9c5794bf78e73ffedd53e165873f73c14f6b78f5c9f2fedb65418a93b0c421e8cb199aff806f1eae9cd29bc3d8e815e00b049f6154965a46be377374ee3061b957dd8dbb0543645ec42d8bd788143297d062e9d539e931e7857cc9ed37c169d00d67fb0ad25d91a9ac982bf5b7c7f7d535ec541b155839651677fa9626ccd57ed2ecb73fd4c713be8d5c512c9f4edac160b3bdaa79e28a1cd27cca6202b38512bb04f31b731d29861e6efb44b9eb2b94b4ef04cf55923b3dbada960e5a8525c6bfe02df11a180d45ed782d4b4300f9d9a0dbefdda315751c09cb8ae550ad770422758bd8997628654f66582889ab15b987047da49768c2863573ce72a9eda53138c06a2121e6dd3f86c76ebe085b26c3e79d04ab1838908d3ec41e6df9df3785f7e9bd8d02a1620187c8a813f1c194454c3d063798029991de2aca5fd1fa73fdd6c0c087766779b295b027a68ae51c912a408c103123c0528c72abab50b6de2ac2f9d43d7df09a5500627f2bb6b113757566c5b5b819bdb0f9c9691d875fc817e184c4b959533dddd0da174b7413962093a888d695c3dafa0dfd97f92e5b861ea79911b99b476d7685c9cf53ac723de2c3f5d991424b3c1eaef2ac9674647be299999b10efd6102071eea919d157794e4569f7845d2f19760b3fd387ff6c898367c2c091e37b63040281cae55d240e5e02a8f1656bcb1a017692e41bf358b20dbc85c6f321ee2d5193248d60736bca9d8c9c4399dcd746cef00efaa3e7088c14d4f393dea3490c9e38037b5b974b15b60355b173257680b4c33f1a9f61de4ea5b19c3f24df35984a95a9ce20f2477cc7ad1a7040ac9127ca610f3b5aee7b197fb3a7da00743ee40b4bbc057eea62157a932935a2a3c581433780e5edc027e67a1b78194b178b01863bf83f0f749f17602a5a5c82a6454b56c92ad0f0487bfeec0149a538adb2f87f1de0cd15f93dfdff57c520cf192a96e15e286aebe58b80897eb733b559a6002a12b12ae15e170869e2bbe6d2dd31d12aede4917f5dd8363a6cf33c425c13db41c8b2d5022e77f725c3bedbfd212d35dc3554843a59ac255d67e14a9fb25f06975b19055cea0dca7662b6fa9f1145a846c2d59ceaef0d2e11bcbc2be3f67a05a281ab77bd634da26d5812d9803a1fd51242f5073f12bbd9f2e3804884002407b9b03f0900d052bf753ff000bb6b818b0111dc76e991cc2bae2dc78e4b718704b79df0eb4dda40679e7c57fbbfef9944e194324ec32b02e18e612c3f826fdc88e072882c9726229ab19498dd0e056b05cec5fc9b722c23c8a4925a2d0d80f2313e1a8773c19f7da017ef2e8bb398c2ae8fa63ff319cb74b39eca5e2314c1e0d26b98ab2346d8722d871fc30cc82683aa64271887dc7a8221929748f85fec86ef33eaf24264c16be974cb01463b524d47dd820a5325faf43a70aafcd90914dc8f221935f6386f8a5c1ca1157545b62a62640f41c56377fb764089e3241d2f75100912332989a3e72a079ef7b36d26677e1f5915de78b48714844207b5561118cbb5a7c80b3cb9566c13a8ae8a35e5c828faef6c1cc94767724b1167716f954d048d713cea9f252e37c8d8fdb6facf2933e3a2dd467878afed1ef8603cf8638ef63a99eef866b389c5c1996ee059fdb35d6c2191b68e81aa8b39571995f0abd3f6ce70b026850c913e35c28970da670dd9ca283c1395e8c6eb9179bba667928a38e78410b5a70860189f15bbc841969b013b4b4692ed503d927be07bee48ad056945a061f59028a6d9703c506f80f8fc2614fbbcf8f47b312d332b22e6bae9818bb3af8bb6cfce50e4ffcf166e9d09461e51520530d31777894d269a5eda8a2fd159f2cea0198a7bed154a83de926cce8026cf456997438b624fed949f8f28d79434b44ba1527256a0dd68d733f54e26b5125870e0d761721394621200be3c2d57a945ab5ef2a602c58dedcafaba57914d00adeddff89a4d82c2ef344eabd6800c80ccd854193cb89d72eff1ab0d8403e81a751ff5a50364f359f5d7312d7d5d6dde57e197c77bc11a18e76d8c7295828591af96f009e17cca7d505ef7b74c7a6cc97a40954e6f888e103fb812ddc7efc62d4be3ba0ac08c5c68375defab720e167c7fb19f0e86b143cde119922cd0c1575bad20b86161fb744d3e52cc2c00bf8137e717b6f4047ba70a5970cc1d0004ad9025ce8dadf640b035f5f7906f240dd6e653d907edae91f1a609a37dc2beaaccf88162f879fd0ec902e92442392e8884e0511012baa4e134bedfd93ecf4107fc39e9711a0810cd22b671214b0884ad63dbbe0cb061521089939b2460986a377f543dc630b64d9cd03c124fede6debbea2a8e053ec74131076c322666dcd296de072d9bc6d2efdf2c9959532228e05d8b125f64354e5ff91d819c8cc3a846f3c71eaa27c8b373e4ff9bca8909286b6c31e1c73bb695cef07c48b89018cf53cd7992d5a94312e538857f0e89f94146ed3a24f54636b0e7fac097f67952baebf2ae9457d58a3fc764b9e52c5820d009b3b4a959280b1c6a0262028c56170c1776ab7f04b95893e6e4e0bae08bf51dfad9baf39eed432075ec49d52b830dc6543f7d7ecd49d8c24b34b0b5fffd1d519ef772d5c3c83b50c98ea14adf6ef9b21c333188e169f73dd718696f134f89895fa5a2814e82613abebf29c39a605a6860d326c41121dc68a10fd49c6e6076dbd5c0821322fa526def2cdbcc9bfb9c90b4f35f61f8a37765fa2a45dbad8ce97698991d0de78d30bba46e5b5bdb0b121a3b929912b870e2e040500b233a6906f313f24d39df3991f71100d7f5011142c592b3ef49d39421529a52de00c95a76b8721f186cd9acc31162895bfaea4f72b564ef847cf5e1c626b2794c76a3f3b774282ddce9eb8c7aed5ed35119e44ae7b908ca3653b9c17dbf9771882810d7468573453cd32e4f56e68c7dd7c7ba1b99c3b477089ecde5ab672ff017fc5d259c6405d37ba9d222956bc02cc628b271155f556c961d6abcf03b604cea69c84293aebd258155ebbab9964cd</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">您好，这里需要密码。</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/blog/lib/hbe.js"></script><link href="/blog/css/hbe.style.css" rel="stylesheet" type="text/css">
      </section>

      
      
        <nav class="article-nav">
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2023/04/29/%E9%80%9A%E7%94%A8%E5%AF%BC%E5%87%BAExcel%E8%AE%B0%E5%BD%95/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">通用导出Excel记录</h2>
        </a>
      
      <div class="card-text--row">Newer</div>
    </div>
  </article>
</div>
          
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2023/04/05/activiti%E9%9B%86%E6%88%90%E7%AC%94%E8%AE%B0/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">activiti集成记录</h2>
        </a>
      
      <div class="card-text--row">Older</div>
    </div>
  </article>
</div>
          
        </nav>
      

      <section class="page-message-container layout-padding">
        


  
  

  
  


      </section>
    </div>
    <div class="widget-info">
      <section class="widget-author widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-body">
    
      <img src="/blog/icon.gif" class="soft-size--round soft-style--box" alt="QAQ">
    
    
      <h2>QAQ</h2>
    
    
      <p>贵在坚持</p>
    

    <div class="count-box">
      <div class="count-box--item">
        <svg class="icon icon-article" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M240.51564747 647.74217627h196.07203239c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806V165.10332731c0-33.18142087-30.16492806-60.32985613-60.32985612-60.32985611H245.04038668C225.43318342 104.7734712 210.35071939 119.85593522 210.35071939 139.46313845V617.57724821c0 16.59071043 13.57421762 30.16492806 30.16492808 30.16492806z m663.62841731-452.47392089v482.63884894c0 33.18142087-27.14843525 60.32985613-60.32985612 60.32985613H180.18579134c-33.18142087 0-60.32985613-27.14843525-60.32985612-60.32985613V195.26825538c-49.77213131 0-90.49478418 40.72265287-90.49478417 90.49478417v452.4739209c0 49.77213131 40.72265287 90.49478418 90.49478417 90.49478417h286.56681657c16.59071043 0 30.16492806 13.57421762 30.16492807 30.16492807s13.57421762 30.16492806 30.16492805 30.16492806h90.49478418c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806s13.57421762-30.16492806 30.16492807-30.16492807h286.56681657c49.77213131 0 90.49478418-40.72265287 90.49478417-90.49478417V285.76303955c0-49.77213131-40.72265287-90.49478418-90.49478417-90.49478417zM587.41232014 647.74217627h191.54729318c19.60720323 0 34.68966726-15.08246403 34.68966729-34.68966727V134.93839925c0-16.59071043-13.57421762-30.16492806-30.16492808-30.16492805H617.57724821c-30.16492806 0-60.32985613 27.14843525-60.32985612 60.32985611v452.4739209c0 16.59071043 13.57421762 30.16492806 30.16492805 30.16492806z" fill="currentColor"></path>
</svg>
        <span>22</span>
      </div>
      <div class="count-box--item">
        <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
        0
      </div>
      <div class="count-box--item">
        <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
        8
      </div>
    </div>
  </div>
</section>

      

      
<section class="widet-notice widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-notice" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M512 945.02305225v28.15620663a24.27259221 24.27259221 0 0 1-24.27259221 24.27259335H394.0352a48.54518557 48.54518557 0 0 1-41.74885888-23.78714112l-110.68302222-184.47170332a132.04290333 132.04290333 0 0 1-17.47626667-48.54518557h118.4502511a200.97706667 200.97706667 0 0 1 76.21594113 14.56355556l20.38897777 133.49925888a48.54518557 48.54518557 0 0 0 36.40888888 27.67075555l16.01991111 2.91271112a24.27259221 24.27259221 0 0 1 20.38897778 25.72894889zM997.45185223 463.45481443a194.18074112 194.18074112 0 0 1-38.8361489 116.50844445 24.75804445 24.75804445 0 0 1-36.4088889 0l-34.95253333-34.95253333a24.27259221 24.27259221 0 0 1-2.91271111-30.58346667 97.09036999 97.09036999 0 0 0 0-106.79940665 24.27259221 24.27259221 0 0 1 2.91271111-30.58346666l34.95253333-34.95253334a24.75804445 24.75804445 0 0 1 18.93262223-7.28177777 26.2144 26.2144 0 0 1 17.47626667 9.70903665A194.18074112 194.18074112 0 0 1 997.45185223 463.45481443z m-194.18074112-388.36148111v776.72296335a48.54518557 48.54518557 0 0 1-48.54518556 48.54518443h-28.64165888a48.54518557 48.54518557 0 0 1-33.98163001-14.07810332l-145.63555556-143.20829668A291.27111111 291.27111111 0 0 0 342.57730333 657.63555556H172.18370333a145.63555556 145.63555556 0 0 1-145.63555556-145.63555556v-97.09036999a145.63555556 145.63555556 0 0 1 145.63555556-145.63555556h170.3936a291.27111111 291.27111111 0 0 0 206.31703779-85.43952668l145.63555555-143.20829554a48.54518557 48.54518557 0 0 1 33.98162888-14.07810446H754.72592555a48.54518557 48.54518557 0 0 1 48.54518556 48.54518555z" fill="currentColor"></path>
</svg>
    <span>NOTICE</span>
  </div>
  <div class="widget-body">
    <p>flex-block主题部分重构，详情查看https://github.com/miiiku/flex-block</p>
  </div>
</section>


      <section class="widget-categorys widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
    <span>CATEGORYS</span>
  </div>
  <div class="widget-body">
    <ul class="categorys-list">
      
    </ul>
  </div>
</section>

      <section class="widget-tags widget-item  layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
    <span>TAGS</span>
  </div>
  <div class="widget-body">
    <div class="tags-cloud">
      <a href="/blog/tags/Activiti/" style="font-size: 13.33px;" class="tags-cloud-3">Activiti</a> <a href="/blog/tags/Nginx/" style="font-size: 10px;" class="tags-cloud-0">Nginx</a> <a href="/blog/tags/PG%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 13.33px;" class="tags-cloud-3">PG数据库</a> <a href="/blog/tags/goView/" style="font-size: 13.33px;" class="tags-cloud-3">goView</a> <a href="/blog/tags/java/" style="font-size: 20px;" class="tags-cloud-10">java</a> <a href="/blog/tags/vue/" style="font-size: 16.67px;" class="tags-cloud-7">vue</a> <a href="/blog/tags/%E5%AF%BC%E5%87%BAExcel/" style="font-size: 16.67px;" class="tags-cloud-7">导出Excel</a> <a href="/blog/tags/%E6%8A%A5%E9%94%99/" style="font-size: 10px;" class="tags-cloud-0">报错</a>
    </div>
  </div>
</section>
    </div>
  </article>
</div>

    <!-- footer container -->
<footer id="footer" class="footer">
  <div class="footer-container">
    
    <div class="social-icons">
      
        
      
        
      
        
      
        
          <a href="https://github.com/miiiku/" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-github" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M64.6 512c0 195.6 125.4 361.9 300.1 422.9 23.5 5.9 19.9-10.8 19.9-22.2v-77.6c-135.8 15.9-141.3-74-150.5-89-18.5-31.5-61.9-39.5-49-54.5 31-15.9 62.5 4 98.9 58 26.4 39.1 77.9 32.5 104.1 26 5.7-23.5 17.9-44.5 34.7-60.9-140.7-25.2-199.4-111.1-199.4-213.3 0-49.5 16.4-95.1 48.4-131.8-20.4-60.6 1.9-112.4 4.9-120.1 58.2-5.2 118.5 41.6 123.3 45.3 33.1-8.9 70.8-13.7 112.9-13.7 42.4 0 80.3 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.4-43.9 2.9 7.7 24.7 58.3 5.5 118.1 32.5 36.8 49 82.8 49 132.4 0 102.3-59 188.3-200.2 213.2 23.5 23.3 38.1 55.5 38.1 91.1v112.7c0.8 9 0 17.9 15.1 17.9C832.7 877 960.4 709.4 960.4 512.1c0-247.5-200.6-447.9-447.9-447.9C265 64.1 64.6 264.5 64.6 512z"></path>
</svg>
          </a>
        
      
        
          <a href="https://twitter.com/guanquanhong" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-twitter" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M962.285714 233.142857q-38.285714 56-92.571429 95.428571 0.571429 8 0.571429 24 0 74.285714-21.714286 148.285714t-66 142-105.428571 120.285714-147.428571 83.428571-184.571429 31.142857q-154.857143 0-283.428571-82.857143 20 2.285714 44.571429 2.285714 128.571429 0 229.142857-78.857143-60-1.142857-107.428571-36.857143t-65.142857-91.142857q18.857143 2.857143 34.857143 2.857143 24.571429 0 48.571429-6.285714-64-13.142857-106-63.714286t-42-117.428571l0-2.285714q38.857143 21.714286 83.428571 23.428571-37.714286-25.142857-60-65.714286t-22.285714-88q0-50.285714 25.142857-93.142857 69.142857 85.142857 168.285714 136.285714t212.285714 56.857143q-4.571429-21.714286-4.571429-42.285714 0-76.571429 54-130.571429t130.571429-54q80 0 134.857143 58.285714 62.285714-12 117.142857-44.571429-21.142857 65.714286-81.142857 101.714286 53.142857-5.714286 106.285714-28.571429z"></path>
</svg>
          </a>
        
      
    </div>
     
    <p>&copy; 2024 <a href="/" target="_blank">QAQ</a></p>

    

    <p>Powered by <a href="https://hexo.io" target="_blank" rel="noopener noreferrer">Hexo</a> Theme - <a href="https://github.com/miiiku/flex-block" target="_blank" rel="noopener noreferrer author">flex-block</a></p>

    <p>
      <a href="javascript:;" id="theme-light">🌞 浅色</a>
      <a href="javascript:;" id="theme-dark">🌛 深色</a>
      <a href="javascript:;" id="theme-auto">🤖️ 自动</a>
    </p>
  </div>
</footer>
  </div>

  <div class="back-to-top-fixed soft-size--round soft-style--box">
    <svg class="icon icon-back-to-top" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <path d="M725.333333 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8l-213.333333-213.333333c-17.066667-17.066667-17.066667-42.666667 0-59.733333s42.666667-17.066667 59.733333 0l213.333333 213.333333c17.066667 17.066667 17.066667 42.666667 0 59.733333C746.666667 422.4 738.133333 426.666667 725.333333 426.666667z"></path>
      <path d="M298.666667 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8-17.066667-17.066667-17.066667-42.666667 0-59.733333l213.333333-213.333333c17.066667-17.066667 42.666667-17.066667 59.733333 0s17.066667 42.666667 0 59.733333l-213.333333 213.333333C320 422.4 311.466667 426.666667 298.666667 426.666667z"></path>
      <path d="M512 896c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 682.666667C554.666667 878.933333 537.6 896 512 896z"></path>
    </svg>
  </div>

  
  <!-- aplayer -->


<!-- dplayer -->


<!-- copy button  -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>

<!-- https://clipboardjs.com/ -->


<script type="text/javascript">
	(function () {
		function getCodeType (elem) {
			const classs = Array.from(elem.classList.values());
			if (classs && classs.length > 1) {
				return classs[1];
			}
			return "plain";
		}

		window.addEventListener("DOMContentLoaded", () => {
			const copyBtnClass = "copy-btn";
			//  instantiate clipboardjs 
			const clipboard = new ClipboardJS('.' + copyBtnClass);

			clipboard.on('success', function (e) {
				console.info('Action:', e.action);
				console.info('Text:', e.text);
				console.info('Trigger:', e.trigger);
				if (e.trigger) {
					e.trigger.classList.add("copied");
					setTimeout(() => {
						e.trigger.classList.remove("copied");
					}, 3000);
				}
				e.clearSelection();
			});

			clipboard.on('error', function (e) {
				console.error('Action:', e.action);
				console.error('Trigger:', e.trigger);
			});

			document.querySelectorAll('figure.highlight').forEach((elem) => {
				const codeContent = elem.querySelector("td.code");
				const copyButton = document.createElement('button');
				copyButton.setAttribute("class", copyBtnClass);
				copyButton.setAttribute("title", "Copy Code");
				copyButton.setAttribute("data-clipboard-text", codeContent.innerText);
				elem.insertBefore(copyButton, elem.children[0]);
			});
		})
	})();
</script>








  


  


  




<script src="/blog/js/script.js"></script>


  
  <!-- 尾部用户自定义相关内容 -->
</body>
</html>
